To start out getting familiar with Qemu, I am installing it into a VirtualBox VM, as I do not at the moment have Linux installed directly on my laptop. I wills tart with an x86 Linux target inside of Qemu to get a feel for things.
Does this Qemu inside Virtualbox config meet the CPU VM feature requirements to use VFIO to directly access the "Host" VirtualBox "hardware" directly?
Does having a PPC system inside Qemu offer any conveniences for debugging? Such as a virtual JTAG debugger sortof thing? (ie. a virtual BDI3000 sort of setup?)
How do I add new Qemu "hardware" devices, other than the Macintosh style devices it currently provides? (different IDE, different audio, etc)
While Qemu x86 target on x86 host can run full-speed, can PPC target on PPC host do the same? Or do other (not x86/x64) hosts not get the dynamic translation speed benefit, and run at interpreted speeds even on matching target/host architecture?
Where does one start in compiling Qemu?
What is requried to create a new Qemu target system? (config files, where at, syntax, how do selected virtual devcies get selected, etc. to make up a target "motherboard"?)
My goals are to tinker with hardware device drivers in a PPC OS. At first, due to convenience, I will likely work with an x64 host hardware, but later on I do intend to see this running on PowerPC host hardware as well, with a PowerPC Linux host OS as closely matching the x65 Linux host as possible. Though I tend to use Kubuntu Linux, I am not sure what Linux is available for PowerPC. Once I am comfortable running inside Qemu, this would seem a convenient way to provide some base consistency target system across host platforms. So the guest PPC OS will see something familiar and usable in the Qemu virtual devices (including any I might need to add to the Qemu virtual machine) and thus allow it to function, while I start poking around with the VFIO access to different real hardware.
libncurses5-dev
libasound2-dev for alsa sound option
libfdt-dev
libgtk-3-dev
libvte-2.90-dev
##libcap-ng-dev for VirtFS (seems to prefer libcap-dev)
libcap-dev for VirtFS
libattr1-dev for VirtFS
libusb-dev for libusb passthrough
My .configure command is:
./configure --prefix=/opt/qemu --enable-modules --audio-drv-list=alsa --enable-gtk --enable-vnc --enable-virtfs --enable-curses --enable-fdt --enable-kvm --enable-tcg-interpreter --enable-system
The emulated PPC target conisists of this virtual hardware"
http://wiki.qemu.org/download/qemu-doc.html#QEMU-PowerPC-System-emulator
Some other questions:
My goals are to tinker with hardware device drivers in a PPC OS. At first, due to convenience, I will likely work with an x64 host hardware, but later on I do intend to see this running on PowerPC host hardware as well, with a PowerPC Linux host OS as closely matching the x65 Linux host as possible. Though I tend to use Kubuntu Linux, I am not sure what Linux is available for PowerPC. Once I am comfortable running inside Qemu, this would seem a convenient way to provide some base consistency target system across host platforms. So the guest PPC OS will see something familiar and usable in the Qemu virtual devices (including any I might need to add to the Qemu virtual machine) and thus allow it to function, while I start poking around with the VFIO access to different real hardware.
Command line arguments
http://wiki.qemu.org/download/qemu-doc.html#sec_005finvocation
-vga cirrus
or
-vga vmware
Also consider 440ep as my PowerPC guest CPU
Compiling Qemu (using Ubuntu 14.04 on amd64 host)
Packages I added to get Qemu 2.1.1 (from sources tarball) to .configure cleanlybuild-essential
zlib1g-dev
libglibmm-2.4-dev
libtool
libncurses5-dev
libasound2-dev for alsa sound option
libfdt-dev
libgtk-3-dev
libvte-2.90-dev
##libcap-ng-dev for VirtFS (seems to prefer libcap-dev)
libcap-dev for VirtFS
libattr1-dev for VirtFS
libusb-dev for libusb passthrough
My .configure command is:
./configure --prefix=/opt/qemu --enable-modules --audio-drv-list=alsa --enable-gtk --enable-vnc --enable-virtfs --enable-curses --enable-fdt --enable-kvm --enable-tcg-interpreter --enable-system